SamplerState samLinear : register( s0 );

cbuffer cbView : register( b0 )
{
	matrix View;
};

cbuffer cbProjection: register( b1 )
{
	matrix Projection;
};

//--------------------------------------------------------------------------------------
struct VS_INPUT
{
	float4 Pos : POSITION;
	float3 Color : COLOR;
};

struct PS_INPUT
{
	float4 Pos : SV_POSITION;
	float4 Color : COLOR;
};

// Vertex Shader
PS_INPUT VS( VS_INPUT input )
{
	PS_INPUT output = (PS_INPUT)0;
	input.Pos.w = 1.0f;
	output.Pos = mul( input.Pos, View );
	output.Pos = mul( output.Pos, Projection );
	output.Color = float4(input.Color.r, input.Color.g, input.Color.b, 1.0f);
	return output;
}

// Pixel Shader
float4 PS( PS_INPUT input) : SV_Target
{
	return input.Color;
}